- RandomPasswordGenerator.py
- project /
1 # se selecteaza un cuvant random dintr-o lista
2 # de 400 de cuvinte
3 import random
4
5 def rand_word_gen(lang):
6 myline = 0
7 myline2 = 0
8 #myline1 is the first word
9 #myline2 is the second word
10 #we're adding the first word to myline2
11 if lang=="1":
12 file1=open("wordsENG.txt","r")
13 file2=open("wordsENG2.txt","r")
14 elif lang=="2":
15 file1=open("wordsRO.txt","r")
16 file2=open("wordsRO2.txt","r")
17 lines = file1.read().splitlines()
18 myline =random.choice(lines)
19
20 lines2 = file2.read().splitlines()
21
22 if rand_num_gen()%2 == 0:
23 myline = myline.upper()
24
25 if rand_num_gen()%3 == 0:
26 myline2 = myline + random.choice(lines2)
27 elif rand_num_gen()%3 == 2:
28 myline2 = myline
29 else:
30 myline2 = random.choice(lines2) + myline
31 return myline2
32
33 def rand_symb_gen():
34 lines = open('symbols.txt').read().splitlines()
35 myline = random.choice(lines)
36 return str(myline)
37
38 # se genereaza un numar random de maxim 4 cifre
39 def rand_num_gen():
40 return random.randint(1,1000)
41
42 ###########################
43 def gen_word_and_number(lang):
44 rw=str(rand_word_gen(lang))
45 rn=str(rand_num_gen())
46 return rw,rn
47
48 # functii principale #######################################
49 def easy_pass_gen(lang):
50 randomWord, randomNumber = gen_word_and_number(lang)
51 if rand_num_gen()%2 == 0:
52 easypass = randomWord + str(randomNumber)
53 else:
54 easypass = str(randomNumber) + randomWord
55 return easypass
56
57 def strong_pass_gen(lang):
58 temppass = rand_symb_gen()
59 for i in range(rand_num_gen()%4):
60 symbol = rand_symb_gen()
61 temppass = temppass + symbol
62
63 epg=easy_pass_gen(lang)
64 #print(epg)
65 #de aici rezulta ca problema de acum e cu easy_pass_gen, nu returneaza un cuvant for some reason
66 #problema e rezolvata (?), acum mai e doar problema ca uneori se genereaza doar numere random, inca nu stiu unde. somn usor
67 l = list(temppass)
68 random.shuffle(l)
69 temppass = ''.join(l)
70
71 l = list(epg)
72 random.shuffle(l)
73 if rand_num_gen()%2 == 0:
74 temppass = temppass + ''.join(l)
75 else:
76 temppass = ''.join(l) + temppass
77 return temppass
78 ############################################################
79
80
81
82 def passcheck(passd):
83 if len(passd)>4 and len(passd)<20:
84 return 1
85 else: return 0
86
87 def genpass(answer,lang):
88 while True:
89 if answer == "1":
90 passd=easy_pass_gen(lang)
91 else:
92 passd=strong_pass_gen(lang)
93 return passd
94 if passcheck(passd)==1:
95 return passd
96 print("passcheck passed!")
97 else:
98 print("problema cu passcheck")
99 genpass(answer,lang)
100
101 #def main():
102 # file = open("wordsENG2.txt", "r")
103 # file5 = open("parole.txt", "a")
104 # file5.write(easy_pass_gen(file,2))
105 # file5.write("\n")
106
107 #if __name__== "__main__":
108 # i=501
109 # while i>0:
110 # main()
111 # i-=1
112
113 def main():
114 lang = input("EN/RO?")
115 answer = input("Do you want a weak or strong password ? (1=weak, 2=strong) : ")
116 print(genpass(answer,lang))
117
118
119 if __name__== "__main__":
120 main()